package model

import (
	"gorm.io/gorm"
	"shopping_08_20/globale"
	"time"
)

type Shop struct {
	Id        uint32         `gorm:"column:id;type:int UNSIGNED;comment:商品ID;primaryKey;not null;" form:"id" json:"id"`                // 商品ID
	Name      string         `gorm:"column:name;type:varchar(30);comment:商品名称;not null;" form:"name" json:"name"`                    // 商品名称
	Info      string         `gorm:"column:info;type:varchar(60);comment:商品信息;not null;" form:"info" json:"info"`                    // 商品信息
	Pricer    int32          `gorm:"column:pricer;type:int;comment:商品价格  按分计算，如1元==100;not null;" form:"pricer" json:"pricer"` // 商品价格  按分计算，如1元==100
	CreatedAt time.Time      `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" form:"created_at" json:"created_at"`
	UpdatedAt time.Time      `gorm:"column:updated_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" form:"updated_at" json:"updated_at"`
	DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);default:NULL;" form:"deleted_at" json:"deleted_at"`
}

func (s *Shop) TableName() string {
	return "shop"
}

// 添加商品
func (s *Shop) AddShop() error {
	return globale.DB.Create(&s).Error
}

// ID查询商品
func (s *Shop) IdGetShop() error {
	return globale.DB.Where("id = ?", s.Id).Find(&s).Error
}

// 商品信息修改
func (s *Shop) UpdateShop() error {
	return globale.DB.Updates(&s).Error
}

// 商品条目删除
func (s *Shop) DeleteShop() error {
	return globale.DB.Delete(&s).Error
}
